package com.zpfjava.quickhit;

import java.util.*;

/**
 * 3.玩家类
 *
 * @author zpf
 */
public class Player {
    /**
     * 玩家的级别号
     */
    private int levelNo;
    /**
     * 当前积分
     */
    private int curScore;
    /**
     * 各级别的开始时间
     */
    private long startTime = 0;
    /**
     * 各级别已用时间
     */
    private int elapsedTime;

    public int getLevelNo() {
        return levelNo;
    }

    public void setLevelNo(int levelNo) {
        this.levelNo = levelNo;
    }

    public int getCurScore() {
        return curScore;
    }

    public void setCurScore(int curScore) {
        this.curScore = curScore;
    }

    public long getStartTime() {
        return startTime;
    }

    public void setStartTime(long startTime) {
        this.startTime = startTime;
    }

    public int getElapsedTime() {
        return elapsedTime;
    }

    public void setElapsedTime(int elapsedTime) {
        this.elapsedTime = elapsedTime;
    }

    /**
     * 玩家玩游戏
     */
    public void play() {
        /**
         * 玩家玩游戏
         * this: 本类对象的
         */
        Game game = new Game(this);
        /**
         * 外层循环一次，内层循环一周
         * 外层：关数=级别
         * 内层：每关的里的局数
         * 循环一次晋级一次，一次通关成功
         */
        for (int i = 0; i < LevelParam.levels.length; i++) {
            //1.玩家记录游戏级别，晋级
            this.levelNo += 1;

            //2.晋级后计时清零，积分清零
            //开始时间=当前系统时间
            this.startTime = System.currentTimeMillis();
            this.curScore = 0;

            //3.内层循环，循环一次完成一次字符串的输出、输入，比较
            for (int j = 0; j < LevelParam.levels[levelNo - 1].getStrTime(); j++) {
                //3.1 游戏输出字符串
                String outStr = game.printStr();

                //3.2 接受用户控制台输入
                Scanner input = new Scanner(System.in);
                String inStr = input.next();

                //3.3 游戏判断玩家输入是否正确，并输出相应结果
                game.printResult(outStr, inStr);
            }

        }
    }
}

